package com.run2code.idea.plugin.codegenerate.biz.generate.template;

import com.run2code.idea.plugin.codegenerate.biz.generate.content.CodeGenContext;
import com.run2code.idea.plugin.codegenerate.biz.generate.service.ICodeGenerator;
import com.run2code.idea.plugin.codegenerate.biz.generate.service.impl.CodeGeneratorImpl;
import com.run2code.idea.plugin.codegenerate.biz.generate.service.impl.CustomCodeGeneratorImpl;
import org.apache.commons.lang3.StringUtils;

import java.util.LinkedHashMap;

/**
 * 代码生成器工厂
 * 关注公众号【奔跑的码畜】，一起进步不迷路
 *
 * @author 第七人格
 * @date 2023/10/30
 */
public class CodeGeneratorFactory {

    private CodeGeneratorFactory() {
    }

    private static final LinkedHashMap<Boolean, ICodeGenerator> MAP = new LinkedHashMap<>();

    static {
        // 默认使用内置模板
        MAP.put(true, new CodeGeneratorImpl());
        MAP.put(false, new CustomCodeGeneratorImpl());
    }

    public static ICodeGenerator instance(CodeGenContext codeGenContext) {
        return MAP.get(StringUtils.isBlank(codeGenContext.getTemplateUrl()));
    }

}
